%% ============================================
%   有限项多项式拟合
%  ===============================================
start;

t = 0.01:0.01:0.04;     % 时间序列
y = [2.*(t.^2) - t; 2.*(t.^2) - t; 2.*(t.^2)- t]';       % 角速率函数
dy = [ (t.^3).*(2/3) - (t.^2)./2 ;  
       (t.^3).*(2/3) - (t.^2)./2 ;
       (t.^3).*(2/3) - (t.^2)./2 ]';        % 角速率积分
dy(4,:) = dy(4,:) - dy(3,:);
dy(3,:) = dy(3,:) - dy(2,:);
dy(2,:) = dy(2,:) - dy(1,:);        % 角增量

[Gamma, Theta] = CP_CalBaseMat(0.01, 4);    % 计算矩阵Gamma Theta
C = CP_CalPolyCoef(dy, Theta);      % 计算多项系数矩阵C
yest = Gamma * C;                   % 计算角速度

err0 = abs(yest-y);                  % 计算函数逼近误差

%% ============================================
%   无限项多项式拟合
%  ===============================================
% 1-生成正弦函数（8子样）
ts = 0.01;   nn = 8;   omg = pi/(nn*ts);
t = (0:ts:nn*ts)';
y = [sin(t) cos(t) exp(t)];
y = y(2:end,:);
yi = [-cos(t) sin(t) exp(t)];
yd = diff(yi);

% 2-非满射拟合与拟合误差计算
[Gamma, Theta] = CP_CalBaseMat(ts,nn);    % 计算矩阵Gamma Theta
C = CP_CalPolyCoef(yd, Theta);      % 计算多项系数矩阵C
yest = Gamma * C;                   % 计算角速度

err = abs(yest-y);                  % 计算函数逼近误差


% 3-满射拟合与拟合误差计算
t1 = (0:nn)'/4-1;
[Gamma, Theta] = CP_CalBaseMat(ts,nn,1);    % 计算矩阵Gamma Theta
C1 = CP_CalPolyCoef(yd, Theta);     % 计算多项系数矩阵C1
yest = Gamma * C1;                  % 计算角速度

err1 = abs(yest-y);                 % 计算函数逼近误差




